package com.suse.service.view.order.service;

import com.suse.common.config.response.R;
import com.suse.service.view.order.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 订单 服务类
 * </p>
 *
 * @author 辜玉彬
 * @since 2022-08-20
 */
public interface OrderService extends IService<Order> {

    /**
     * 添加订单
     * @param courseId 课程ID
     * @param userId 用户ID
     * @return R
     */
    R saveOrder(String courseId,String userId);

    /**
     * 通过ID获取订单信息
     * @param id ID
     * @return 订单信息
     */
    Order getOrderInfoById(String id,String userId);

    /**
     * 判断课程是否已购买
     * @param courseId 课程ID
     * @param userId 用户ID
     * @return 是否已购买
     */
    boolean hasBuy(String courseId, String userId);

    /**
     * 获取我的订单列表
     * @param userId 用户ID
     * @return R
     */
    R getOrderList(String userId);

    /**
     * 删除我的订单
     * @param orderId 订单ID
     * @param userId 用户ID
     * @return R
     */
    R removeMyOrder(String orderId, String userId);

    /**
     * 通过订单号更新订单状态
     * @param orderNo 订单号
     * @param status 订单状态
     */
    void updateStatusByOrderNo(String orderNo,Integer status);

}
